/**
 * NSFileManager+GTExtension.m
 *
 * The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");
 * you may not use this file except in compliance with the License. You may obtain a copy of the License 
 * at http://www.mozilla.org/MPL/
 * Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND,
 * either express or implied. See the License for the specific language governing rights and limitations 
 * under the License.
 *
 * The Original Code is gcast-toolbox4iphone.
 *
 * The Initial Developers of the Original Code is Giannandrea Castaldi.
 */
#import "NSFileManager+GTExtension.h"

@implementation NSFileManager (GTExtension)

+ (void)renameDocumentFile:(NSString*)fileToRename withNewName:(NSString*)newName {
  NSError *error = nil;  
  NSString *basePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
  NSString *fileToRenamePath = [basePath stringByAppendingPathComponent:fileToRename];
  NSString *newNamePath = [basePath stringByAppendingPathComponent:newName];
  NSFileManager* fileManager = [NSFileManager defaultManager];
  if ([fileManager fileExistsAtPath:newNamePath]) {
    [fileManager removeItemAtPath:newNamePath error:&error];
    if (error) {
      NSLog(@"ApplicationVersions: failed remove: %@", [error localizedDescription]);
      [error release];
    }
  }
  [fileManager moveItemAtPath:fileToRenamePath toPath:newNamePath error:&error];
  if (error) {
    NSLog(@"ApplicationVersions: failed move: %@", [error localizedDescription]);
    [error release];
  }
}

- (BOOL)copyInDocumentsResourceWithName:(NSString*)aResourceName error:(NSError**)error {
  return [self copyInDocumentsResourceWithName:aResourceName destinationName:aResourceName error:error];
}

- (BOOL)copyInDocumentsResourceWithName:(NSString*)aResourceName destinationName:(NSString*)aDestinationName error:(NSError**)error {
  NSString *sourceFilePath = [[NSBundle mainBundle] pathForResource:aResourceName ofType:nil];
  NSString *destinationFilePath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                                                        NSUserDomainMask, YES) objectAtIndex:0]
                                   stringByAppendingPathComponent:aDestinationName];
  return [self copyItemAtPath:sourceFilePath toPath:destinationFilePath error:error];
}

@end
